// pages/test/test.js
import api from "../../config/api";
import {
  shareOptions
} from "../../utils/access";
import request from "../../utils/request";
import {
  getBarAndTitleHeight,
  stringify,
  setStorage,
  getStorage,
  jump
} from "../../utils/utils";
import NumberAnimate from "../../utils/numberAnimate";

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 数据
    data: {},
    allTimes: 0, //参与测试人数
    // 信号栏高度
    ...getBarAndTitleHeight(),
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (options?.inviteData) {
      setStorage('inviteData', options?.inviteData)
      console.log('邀请人数据：', options.inviteData)
    }
    if (options?.platform) {
      setStorage('platform', options?.platform)
      console.log('平台推广码数据：', options.platform)
    }
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getData()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.getData()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 获取数据
   */
  async getData() {
    const res = await request.get(api.testList, null, {
      loading: false
    })
    if (res.httpStatus === 200) {
      const data = res?.data || {}
      // 已参与测试数据处理
      // if (data.allTimes > 10000) {
      // 	data.timesIsWan = true
      // 	data.allTimes = (data.allTimes / 10000).toFixed(1)
      // }
      console.log('quick answer: ', data?.data?.map(m => m.answer))
      this.setData({
        data
      })
      this.numAnimate(data.allTimes)
    }
    wx.stopPullDownRefresh()
  },

  // 人数动态加载方法
  numAnimate(num) {
    let n = new NumberAnimate({
      from: num, //开始时的数字
      peed: 1000, // 总时间        
      refreshTime: 100, //  刷新一次的时间        
      decimals: 0, //小数点后的位数        
      onUpdate: () => { //更新回调函数          
        this.setData({
          allTimes: n.tempValue
        });
      },
      onComplete: () => { //完成回调函数          
      }
    });
  },

  // 跳转答题页
  jumpQuestion() {
      jump('answer',{
        isTest: 1
      })
  },
  // 跳转排行榜页
  jumpRank() {
    jump('testRank')
  },
  // 用户点击右上角分享
  onShareAppMessage(e) {
    const userId = getStorage('userId') || ''
    return shareOptions('default', e, '全国垃圾分类答题测试', `/pages/answerHome/answerHome?inviteData=${userId}`, 'https://image-classify.daieco.com/kejian-quanzi/TlHkdrPLJ0dd1a05ff9659bbd2311b67642b30830074.png')
  },
})